        <!DOCTYPE html>
        <html>
        <head>
                <meta charset="utf-8">
        <title>Shape abstract class / box2d_console Library / Dart Documentation</title>
        <link rel="stylesheet" type="text/css"
            href="../styles.css">
        <link href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800" rel="stylesheet" type="text/css">
        <link rel="shortcut icon" href="../favicon.ico">
        
        </head>
        <body data-library="box2d_console" data-type="Shape">
        <div class="page">
        <div class="header">
          <a href="../index.html"><div class="logo"></div></a>
          <a href="../index.html">Dart Documentation</a>
         &rsaquo; <a href="../box2d_console.html">box2d_console</a> &rsaquo; <a href="../box2d_console/Shape.html">Shape</a>        <div id="search-box">
          <input type="search" name="q" id="q" autocomplete="off"
              class="search-input" placeholder="Search API">
        </div>
        
      </div>
      <div class="drop-down" id="drop-down"></div>
      
        <div class="nav">
        
</div>
<div class="content">
        <h2><strong>Shape</strong>
          abstract class
        </h2>
        
<button id="show-inherited" class="show-inherited">Hide inherited</button>
<div class="doc">
<p>A shape is used for collision detection. You can create a shape however you
like. Shapes used for simulation in World are created automatically when
a Fixture is created.  Shapes may encapsulate a one or more child shapes.</p>
<pre class="source">
abstract class Shape {
  /** The type of shape. Either circle or polygon. */
  int type;

  /** Shape radius. */
  num radius;

  /**
   * Constructs a new shape of unknown type.
   */
  Shape([int type = ShapeType.UNKNOWN, num radius = 0]) :
    type = type,
    radius = radius { }

  /**
   * Test a point for containment in this shape. This only works for convex
   * shapes.
   * transform:  the shape world transform.
   * point: a point in world coordinates.
   */
  abstract bool testPoint(Transform transform, Vector point);

  /**
   * Computes the associated axis aligned bounding box for a child shape
   * given a transform. Returns through the given out paramater.
   */
  abstract void computeAxisAlignedBox(AxisAlignedBox box, Transform transform);

  /**
   * Computes (and returns through the given out parameter massData) the mass
   * properties of this shape using its dimensions and the
   * given density. The inertia tensor is computed about the local origin.
   */
  abstract void computeMass(MassData massData, num density);

  /** Returns a clone of this shape. */
  abstract Shape clone();
}
</pre>
</div>
<h3>Subclasses</h3>
<p>
<span class="type-box"><span class="icon-class"></span><a href="../box2d_console/CircleShape.html">CircleShape</a></span>, <span class="type-box"><span class="icon-class"></span><a href="../box2d_console/PolygonShape.html">PolygonShape</a></span></p>
<div>
<h3>Constructors</h3>
<div class="method"><h4 id="Shape">
<button class="show-code">Code</button>
new <strong>Shape</strong>([int type = ShapeType.UNKNOWN, num radius = 0]) <a class="anchor-link" href="#Shape"
              title="Permalink to Shape.Shape">#</a></h4>
<div class="doc">
<p>Constructs a new shape of unknown type.</p>
<pre class="source">
Shape([int type = ShapeType.UNKNOWN, num radius = 0]) :
  type = type,
  radius = radius { }
</pre>
</div>
</div>
</div>
<div>
<h3>Properties</h3>
<div class="field"><h4 id="radius">
<button class="show-code">Code</button>
num         <strong>radius</strong> <a class="anchor-link"
            href="#radius"
            title="Permalink to Shape.radius">#</a>
        </h4>
        <div class="doc">
<p>Shape radius.</p>
<pre class="source">
num radius;
</pre>
</div>
</div>
<div class="field inherited"><h4 id="runtimeType">
<button class="show-code">Code</button>
final Type         <strong>runtimeType</strong> <a class="anchor-link"
            href="#runtimeType"
            title="Permalink to Shape.runtimeType">#</a>
        </h4>
        <div class="inherited-from">inherited from Object </div><div class="doc">
<p>A representation of the runtime type of the object.</p>
<pre class="source">
external Type get runtimeType;
</pre>
</div>
</div>
<div class="field"><h4 id="type">
<button class="show-code">Code</button>
int         <strong>type</strong> <a class="anchor-link"
            href="#type"
            title="Permalink to Shape.type">#</a>
        </h4>
        <div class="doc">
<p>The type of shape. Either circle or polygon.</p>
<pre class="source">
int type;
</pre>
</div>
</div>
</div>
<div>
<h3>Operators</h3>
<div class="method inherited"><h4 id="==">
<button class="show-code">Code</button>
bool <strong>operator ==</strong>(other) <a class="anchor-link" href="#=="
              title="Permalink to Shape.operator ==">#</a></h4>
<div class="inherited-from">inherited from Object </div><div class="doc">
<p>The equality operator.</p>
<p>The default behavior for all <code>Object</code>s is to return true if and
only if <code>this</code> and 
<span class="param">other</span> are the same object.</p>
<p>If a subclass overrides the equality operator it should override
the <code>hashCode</code> method as well to maintain consistency.</p>
<pre class="source">
bool operator ==(other) =&gt; identical(this, other);
</pre>
</div>
</div>
</div>
<div>
<h3>Methods</h3>
<div class="method"><h4 id="clone">
abstract <a href="../box2d_console/Shape.html">Shape</a> <strong>clone</strong>() <a class="anchor-link" href="#clone"
              title="Permalink to Shape.clone">#</a></h4>
<div class="doc">
<p>Returns a clone of this shape.</p>
</div>
</div>
<div class="method"><h4 id="computeAxisAlignedBox">
abstract void <strong>computeAxisAlignedBox</strong>(<a href="../box2d_console/AxisAlignedBox.html">AxisAlignedBox</a> box, <a href="../box2d_console/Transform.html">Transform</a> transform) <a class="anchor-link" href="#computeAxisAlignedBox"
              title="Permalink to Shape.computeAxisAlignedBox">#</a></h4>
<div class="doc">
<p>Computes the associated axis aligned bounding box for a child shape
given a transform. Returns through the given out paramater.</p>
</div>
</div>
<div class="method"><h4 id="computeMass">
abstract void <strong>computeMass</strong>(<a href="../box2d_console/MassData.html">MassData</a> massData, num density) <a class="anchor-link" href="#computeMass"
              title="Permalink to Shape.computeMass">#</a></h4>
<div class="doc">
<p>Computes (and returns through the given out parameter massData) the mass
properties of this shape using its dimensions and the
given density. The inertia tensor is computed about the local origin.</p>
</div>
</div>
<div class="method inherited"><h4 id="hashCode">
<button class="show-code">Code</button>
int <strong>hashCode</strong>() <a class="anchor-link" href="#hashCode"
              title="Permalink to Shape.hashCode">#</a></h4>
<div class="inherited-from">inherited from Object </div><div class="doc">
<p>Get a hash code for this object.</p>
<p>All objects have hash codes. Hash codes are guaranteed to be the
same for objects that are equal when compared using the equality
operator <code>==</code>. Other than that there are no guarantees about
the hash codes. They will not be consistent between runs and
there are no distribution guarantees.</p>
<p>If a subclass overrides <code>hashCode</code> it should override the
equality operator as well to maintain consistency.</p>
<pre class="source">
external int hashCode();
</pre>
</div>
</div>
<div class="method inherited"><h4 id="noSuchMethod">
<button class="show-code">Code</button>
<strong>noSuchMethod</strong>(String name, List args) <a class="anchor-link" href="#noSuchMethod"
              title="Permalink to Shape.noSuchMethod">#</a></h4>
<div class="inherited-from">inherited from Object </div><div class="doc">
<p><code>noSuchMethod</code> is invoked when users invoke a non-existant method
on an object. The name of the method and the arguments of the
invocation are passed to <code>noSuchMethod</code>. If <code>noSuchMethod</code>
returns a value, that value becomes the result of the original
invocation.</p>
<p>The default behavior of <code>noSuchMethod</code> is to throw a
<code>noSuchMethodError</code>.</p>
<pre class="source">
external Dynamic noSuchMethod(String name, List args);
</pre>
</div>
</div>
<div class="method inherited"><h4 id="Object">
<button class="show-code">Code</button>
const <strong>Object</strong>() <a class="anchor-link" href="#Object"
              title="Permalink to Shape.Object">#</a></h4>
<div class="inherited-from">inherited from Object </div><div class="doc">
<p>Creates a new <code>Object</code> instance.</p>
<p><code>Object</code> instances have no meaningful state, and are only useful
through their identity. An <code>Object</code> instance is equal to itself
only.</p>
<pre class="source">
const Object();
</pre>
</div>
</div>
<div class="method"><h4 id="Shape">
<button class="show-code">Code</button>
new <strong>Shape</strong>([int type = ShapeType.UNKNOWN, num radius = 0]) <a class="anchor-link" href="#Shape"
              title="Permalink to Shape.Shape">#</a></h4>
<div class="doc">
<p>Constructs a new shape of unknown type.</p>
<pre class="source">
Shape([int type = ShapeType.UNKNOWN, num radius = 0]) :
  type = type,
  radius = radius { }
</pre>
</div>
</div>
<div class="method"><h4 id="testPoint">
abstract bool <strong>testPoint</strong>(<a href="../box2d_console/Transform.html">Transform</a> transform, <a href="../box2d_console/Vector.html">Vector</a> point) <a class="anchor-link" href="#testPoint"
              title="Permalink to Shape.testPoint">#</a></h4>
<div class="doc">
<p>Test a point for containment in this shape. This only works for convex
shapes.
transform:  the shape world transform.
point: a point in world coordinates.</p>
</div>
</div>
<div class="method inherited"><h4 id="toString">
<button class="show-code">Code</button>
String <strong>toString</strong>() <a class="anchor-link" href="#toString"
              title="Permalink to Shape.toString">#</a></h4>
<div class="inherited-from">inherited from Object </div><div class="doc">
<p>Returns a string representation of this object.</p>
<pre class="source">
external String toString();
</pre>
</div>
</div>
</div>
        </div>
        <div class="clear"></div>
        </div>
        
        <div class="footer">
          
        </div>
        <script async src="../client-live-nav.js"></script>
        </body></html>
        
